iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
AI & Data

告別每天的重複性任務:AI + n8n 中小企業自動化生存術系列 第 11

Day11:每天手動整理 Excel 報表煩到爆?用 n8n 自動搞定只要幾秒!

  • 分享至 

  • xImage
  •  

每天早上,一家國際物流公司都會收到廠商寄來的 Excel 檔案,裡面有上百筆訂單資料,如下圖:
https://ithelp.ithome.com.tw/upload/images/20250925/20124621NeLTIZvuFI.png

原本的流程很單純,卻非常耗時:

先把檔案從信箱或雲端下載下來
打開 Excel,篩選出屬於自己公司客戶編號(AB開頭)的訂單
再依照重量計算運費(每公斤 250 元)
最後把結果貼到 Google Sheets 報表,給財務跟客服使用

這四個步驟看起來不難,但每天都要重複做,浪費大量時間,而且還容易出錯。
所以今天的文章,我會帶你用 n8n 把這一連串的步驟自動化。

自動化流程設計

我在 n8n 裡設計了一條 Workflow 工作流,長得像這樣:
https://ithelp.ithome.com.tw/upload/images/20250925/20124621JZQXHOpuIR.png

只要把每日的 Excel 檔案丟進指定的 Google Drive 資料夾,整個流程就會自動啟動,並依序完成以下幾個動作:

  • Google Drive Trigger
    當資料夾裡有新的檔案,就會啟動整個工作流。
  • Download File
    把剛剛偵測到的檔案下載下來,存在流程裡,讓後面可以進行資料解析。
  • Extract from File
    解析 Excel 檔案,把裡面的表格內容轉換成一筆一筆的資料項目(items)。
  • Filter
    篩選出屬於自己公司客戶編號的訂單。
  • Edit Fields
    新增一個欄位,自動計算運費:
    運費 = 重量 × 250
  • Append Row in Sheet
    把最後處理好的資料寫進 Google Sheets 報表,方便財務與客服即時查看。

如果一開始毫無頭緒該怎麼設計 Workflow、Nodes,可以參考我 Day6 的文章的提示詞,可以用 AI 工具做初步規劃。

首先,在 n8n 首頁,點右上方的「Create Workflow」
https://ithelp.ithome.com.tw/upload/images/20250925/201246219dxsCnzMCv.png

到 Workflow 的畫面後,點中間的「Add first step」右側會出現 Trigger 選項
https://ithelp.ithome.com.tw/upload/images/20250925/20124621XV7EtiKBj7.png
https://ithelp.ithome.com.tw/upload/images/20250925/201246214JmVMScpNP.png

接下來我們就來說明每個 Node 要怎麼設定。

1. Google Drive Trigger

因為我們在這邊已經確認要選擇「Google Drive Trigger」,直接搜尋「Google Drive」
點 Google Drive 會出現兩個選項,因為是當資料夾裡有新增檔案才啟動,我們選第二個「On Changes involving a specific folder」
https://ithelp.ithome.com.tw/upload/images/20250925/20124621THGM6ql4se.png

接著我們要點 Node 右上方的⋯,選擇「Open」去設定 Node 的執行細節
https://ithelp.ithome.com.tw/upload/images/20250925/20124621RjDkhKQv9U.png
設定方式:

  • Credential:先連結好你的 Google Drive 帳號,設定方式可參考昨天的文章
  • Poll Times:我這裡設定成 Every Minute,意思是每分鐘檢查一次資料夾。
  • Trigger On:選擇 Changes Involving a Specific Folder。
  • Folder:選擇要監控的資料夾(建議用 Folder ID 來指定,比名稱更穩定)
  • Watch For:選 File Created,只要有新檔案被上傳,就會啟動流程。

要怎麼取得 Google Drive 的 Folder ID?到所在的資料夾,上方的紅框框起來的就是
https://ithelp.ithome.com.tw/upload/images/20250925/20124621CnfyFipbvS.png

第一個 Node 設定好後,滑鼠移到 Node 上方會出現 ▶︎ 執行符號,點下去可以看這個 Node 執行之後的結果
執行成功後如圖所示
https://ithelp.ithome.com.tw/upload/images/20250925/20124621sVMKR041rA.png

2. Download File

做好第一個 Node 後,要怎麼做第二個呢?
直接點第一個 Node 後面的+號,出現右側欄,再搜尋框裡面輸入關鍵字就可以找到
我們要的 Node 是 Google Drive > Download File
https://ithelp.ithome.com.tw/upload/images/20250925/20124621c1yf7YaxYn.png
這一步的作用是把觸發到的 Excel 檔案下載下來,存在流程裡,後面才能解析。

  • Resource:選 File
  • Operation:選 Download
  • File → By ID:填 {{$json.id}}

在 n8n 裡,這種 {{…}} 的寫法叫做 Expression(表達式)。它的作用是「從上一個節點的輸出 JSON 裡抓資料」。
像這裡的 {{$json.id}},意思就是「去拿前一個 Trigger 節點輸出的 id 欄位」。這個欄位正好就是檔案的唯一 ID,所以能幫我們自動下載正確的檔案。
雖然看起來像在寫程式,但其實不用自己打 {{$json.id}}。你只要在右側的 Input 欄位清單裡,直接拖拉 id 到空格,n8n 就會自動幫你生成這段表達式。
https://ithelp.ithome.com.tw/upload/images/20250925/20124621pFD38OJ8uH.png

執行之後,右邊的輸出結果可以看到檔案名稱、副檔名、大小,Binary Property 預設叫 data,這就是後面解析 Excel 要用的來源。
https://ithelp.ithome.com.tw/upload/images/20250925/20124621nELydBhfMr.png

3. Extract from File

這一步的作用是把下載下來的 Excel 轉成可用的資料。每一列會被解析成一個 item(像右邊的輸出結果顯示:貼單號碼、客戶編號、重量…)。

設定方式:

  • Operation:選 Extract From XLSX
  • Input Binary Field:填 data(跟前一個 Download 節點的 Binary Property 一樣)

這樣設定好之後,Excel 的表格就會自動被拆成結構化資料,後面就可以針對欄位做篩選、計算或寫入報表。

小提醒:
欄位名稱會依照 Excel 第一列的表頭來決定,所以要確認表頭清楚、不要有重複。

https://ithelp.ithome.com.tw/upload/images/20250925/20124621bDyKpxEjwZ.png

4. Filter

這一步的作用,是把我們需要的訂單挑出來,其他全部丟掉。
在這個案例裡,我設定了條件:
欄位:{{$json["客戶編號"]}} 判斷方式:Starts with 值:AB

意思就是:只要客戶編號是以 AB 開頭的訂單,就會被保留下來;不是的,就會被丟到 Discarded。
右邊的輸出結果也能看到:Kept = 22 筆,Discarded = 11 筆,代表篩選條件成功生效。
https://ithelp.ithome.com.tw/upload/images/20250925/20124621jJgM50K8mz.png

5. Edit Fields

這一步的作用,是在資料裡新增一個「運費」欄位,讓 n8n 自動幫我們計算金額。原本人工要一筆一筆按計算機,現在直接在流程裡完成。

設定方式:

  • Mode:選 Manual Mapping
  • Fields to Set:新增一個欄位,命名為 運費
  • Value:輸入運算式
    {{$json["重量"] * 250}}
    意思是:把這一筆資料的「重量」欄位拿出來,乘以 250(每公斤的運費單價)。
  • Type:選 Number,確保輸出是數值型別。

結果:右邊可以看到,每筆資料除了原本的欄位之外,會多出一個「運費」欄位,例如重量 13.9 公斤 → 運費 3475 元。
https://ithelp.ithome.com.tw/upload/images/20250925/201246219jgmFEvYTt.png

6. Append Row in Sheet

這一步,就是把已經處理好的資料寫進 Google Sheets 報表,等於完成最後的輸出。
選擇 Google Sheet > Append Row in Sheet Node

設定方式:

  • Document:選擇目標試算表(例如「客戶編號AB訂單」)
  • Sheet:選擇要寫入的工作表(例如「工作表1」)
  • Mapping Column Mode:選 Map Each Column Manually
  • Values to Send:逐一對應欄位,例如:
    貼單編號 → {{$json["貼單編號"]}}
    追蹤單號 → {{$json["追蹤單號"]}}
    客戶編號 → {{$json["客戶編號"]}}
    重量 → {{$json["重量"]}}
    運費 → {{$json["運費"]}}
    https://ithelp.ithome.com.tw/upload/images/20250925/20124621AGveVZmw31.png

小結

原本要每天花時間處理的 Excel 報表,現在只要供應商把檔案丟進指定的 Google Drive 資料夾,n8n 就能自動完成以下流程:

  • 偵測新檔案(Google Drive Trigger)
  • 下載檔案(Download File)
  • 解析 Excel(Extract from File)
  • 篩選需要的訂單(Filter)
  • 計算運費(Edit Fields)
  • 寫入報表(Append Row in Sheet)

最終結果,就像 Google Sheet 裡看到的一樣:所有訂單自動整理好,運費也算出來,報表即時更新。
https://ithelp.ithome.com.tw/upload/images/20250925/201246212NEZJT8uel.png

這樣一來,員工不用每天重複同樣的人工操作,不但省下大把時間,也大幅降低出錯的機率。
更重要的是,流程建好之後,就能每天自動跑,真正做到「丟檔案 → 自動完成」。

但如果遇到一個 Excel 檔案有多個工作表?或是需要合併其他表單的資料,該怎麼做呢?
明天我將會分享更多進階內容,不要錯過了!


上一篇
Day 10:如何搞定 Google 憑證 - 取得 Client ID 和 Secret
下一篇
Day 12:進階流程控制—If、Switch、Merge、Loop 的實戰案例
系列文
告別每天的重複性任務:AI + n8n 中小企業自動化生存術14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言